Mam więc problem ze znalezieniem właściwego użycia list :: sort () w odniesieniu do listy struktur. Oto odpowiedni kod: struct student { char firstnm [20], lastnm [20]; int id, stopień; }; listsList; // Nieistotny kod ... cout << "Podaj swoje imię i nazwisko, identyfikator i ocenę. (np. mój pierwszy mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (dane); sList.sort (); Problem, który próbuję rozwiązać, polega na użyciu sList.sort () do sortowania według identyfikatora. Jednak nie mam pojęcia, jak poprawnie przekazać to do list :: sort (). Z góry dziękuję za pomoc / czas! EDYCJA: Rozwiązaniem było po prostu dodanie tego do mojej struktury operator bool <(const student & cmp) const { return id
2021-01-22 08:22:01
Powinieneś rzucić okiem na std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Istnieje wiele definicji tej funkcji, w tym jedna, w której możesz określić, co chcesz sortować. Spójrz też na ten post, myślę, że tego potrzebujesz: https://stackoverflow.com/a/21234017/6663947 Edytować : to jest przykład komparatora: sList.sort ([] (const student & a, const student & b) {return a.idvoid sort (Porównaj komp.); Zakładając, że chcesz posortować obiekty uczniów na liście według identyfikatora klucza w kolejności rosnącej. Możesz zdefiniować operator